Skip to content

docs+test: upgrade/downgrade compatibility policy and format-compat regressions - #384

Merged
MPCoreDeveloper merged 1 commit into
masterfrom
fix/downgrade-policy
Sep 4, 2026
Merged

docs+test: upgrade/downgrade compatibility policy and format-compat regressions#384
MPCoreDeveloper merged 1 commit into
masterfrom
fix/downgrade-policy

Conversation

@MPCoreDeveloper

Copy link
Copy Markdown
Owner

Samenvatting

Punt 2 hardening: upgrade/downgrade-beleid gedocumenteerd + format-compat regressietests.

Nieuwe docs/manual/upgrade-and-downgrade.md met de compatibiliteitsmatrix:

  • Backward compat: huidige versie leest legacy (variable-length, pre-marker) databases en
    encrypted-header bestanden; zonder IsFixedWidthRecords-flag blijft een tabel variable-length.
  • ✅ Opt-in fixed-width migratie (nooit op read-only opens).
  • Downgrade niet ondersteund zodra een database commit-time tombstone-markers bevat
    (negatieve lengte-prefixes) — een oudere binary die alleen positieve prefixes kent kan die niet
    overslaan. Inclusief aanbevolen upgrade-volgorde (backup → read-only open → read-write) en de
    geplande cross-version CI-job.

FormatCompatPolicyTests (2 nieuwe tests) vergrendelt de twee forward-compat-garanties:

  1. Legacy variable-length bestand leest terug en accepteert daarna current-version marker
    writes, over meerdere reopens.
  2. Commit-time tombstone markers blijven stabiel over reopen-cycli en co-existeren met daarna
    geappendete rijen.

Validatie

  • Full suite: 1770 tests, 0 failed (Release).

…egressions

Add docs/manual/upgrade-and-downgrade.md recording the compatibility matrix: new
versions read legacy (variable-length, pre-marker) databases; downgrading below
the marker-introducing release is NOT supported for databases that contain
commit-time tombstone markers (negative length prefixes). Includes the
recommended read-only-first upgrade order and notes the planned cross-version
CI job.

FormatCompatPolicyTests locks in the forward-compatibility guarantees:
(1) a legacy variable-length file reads back and accepts current-version marker
writes across reopens, (2) commit-time tombstone markers stay stable across
reopen cycles while rows appended afterwards coexist.
@MPCoreDeveloper
MPCoreDeveloper merged commit 2aa6da5 into master Sep 4, 2026
12 checks passed
@sonarqubecloud

sonarqubecloud Bot commented Sep 4, 2026

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant